#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Filename: carga_BD.py

from database import *
from datetime import datetime
from random import randrange

if __name__=="__main__":
    # Legajos
    legajos = []
    for num in range(0, 40):
        legajos.append(str(randrange(1, 100000)))
    # Nombres
    nombres = ['Juan', 'Martin', 'Pedro','Gonzalo', 'Antonio', 'Juan',
            'Abel','Diego', 'Eliana', 'Maria', 'Pablo', 'Ivan', 'Federico',
            'Ramon', 'Gerardo', 'Roberto', 'Flavia', 'Daniela', 'Karina',
            'Eric', 'Adelina', 'Alicia', 'Amara', 'Berta', 'Derek', 'Dustin',
            'Edwin', 'Egmont', 'Esmeril', 'Erika']
    apellidos = ['Gimenez', 'Gomez', 'Avellaneda', 'Avella', 'Vella', 'Lila',
            'Aopito', 'Gallardo', 'Sundberg', 'Perez', 'Bonoravo', 'Giardelli',
            'Giraudo', 'Descalzi', 'Nobile', 'Patrignami', 'Durante']
    e_mail = ['jgimenez@gmail.com', 'mgomez@gmail.com',
            'pavellaneda@gmail.com', 'gavella@gmail.com', 'mvella@gmail.com',
            'alila@gmail.com', 'jmayo@gmail.com', 'aaopito@gmail.com',
            'demege21@gmail.com', 'esundber@frsf.utn.edu.ar',
            'aggus@live.com.ar', 'agos_c7@hotmail.com', 'eli_2088@hotmail.com',
            'elocuatrin@hotmail.com', 'ivanzonis@hotmail.com']
    # Comenzamos con los empleados
    empleados = []
    for x in range(0,40):
        empleados.append(EmpleadoBD(
                nombre=nombres[randrange(1, len(nombres))],
                apellido=apellidos[randrange(1, len(apellidos))],
                legajo=legajos[x],
                e_mail=e_mail[randrange(1, len(e_mail))]))
    # Comenzamos con los grupos de resolucion
    # grupo = [fecha_creacion, descripcion, nombre]
    # la fecha se la damos cuando llamamos al constructor
    grupos = {1: ['Realiza ABM de ticket','MesaDeAyuda'],
            2: ['Solucionan problemas de instalacion', 'Unidades de Soporte'],
            3: ['Resuelven problemas de hardware', 'Servicio Tecnico'],
            4: ['Tareas sobre el motor de la BD', 'DBA'],
            5: ['Admnistra estos equipos', 'Administrador SUSE Linux'],
            6: ['Administrar el correo electronico, conexion a internet',
                'Administrador Proxy y correo electronico'],
            7: ['Soluciona problemas de servidores de impresion y archivos',
                'Administrador Debian'],
            8: ['Instalacion y mantenimiento de redes LAN', 'Redes LAN'],
            9: ['Instalacion y mantenimiento de redes WAN', 'Comunicaciones'],
            10: ['Mantenimiento del Sistema Comercial',
                'Desarrollo del Sistema Comercial'],
            11: ['Mantenimiento del Sistema RRHH',
                'Desarrollo del Sistema RRHH'],
            12: ['Mantenimiento del Sistema Reclamos',
                'Desarrollo del Sistema Reclamos'],
            13: ['Resolucion consultas sobre el sistema de la empresa',
                'Soporte funcional de Sistemas']}
    clasificaciones = {u'MesaDeAyuda': [],
            u'Unidades de Soporte': ['Problemas de SO',
            u'Configuracion de clientes de red'],
            u'Servicio Tecnico': ['Problemas de Hardware',
            u'Instalar nuevos componentes'],
            u'DBA': ['Modificacion de esquema de BD',
                'La BD procede mal', 'Defenicion de nuevos triggers'],
            u'Administrador SUSE Linux': ['Problemas con el servidor web',
                'Problema con el servidor de aplicaciones',
                'Base de Datos no responde'],
            u'Administrador Proxy y correo electronico': [
            u'Problemas con el correo electronico',
            u'Problemas con el Proxy'],
            u'Administrador Debian': ['Problemas con Servidores de archivo',
                'Problemas con servidores de impresion'],
            u'Redes LAN': ['Intalacion de Redes LAN',
            'Mantenimiento de cableado LAN', 'Equipamiento para red LAN'],
            u'Comunicaciones': ['Intalacion de Redes WAN',
            'Mantenimiento de cableado WAN', 'Equipamiento para red WAN'],
            u'Desarrollo del Sistema Comercial':
            ['Mantenimiento de Sistema Comercial'],
            u'Desarrollo del Sistema RRHH': ['Mantenimiento de Sistema RRHH'],
            u'Desarrollo del Sistema Reclamos':
            ['Mantenimiento de Sistema Reclamos'],
            u'Soporte funcional de Sistemas': ['Consultas del funcionamiento']}
    for key,value in grupos.iteritems():
        grupo = GrupoDeResolucionBD(fecha_creacion=datetime.now(),
                descripcion=grupos[key][0],
                nombre=grupos[key][1])
        #Generamos los usuarios del grupo:
        for x in range(0,3):
            empleado = empleados[randrange(1, len(empleados))]
            usuario = UsuarioBD(u_legajo='u'+str(empleado.legajo),
                    password=str(randrange(1, 1000000)),
                    empleado_id=empleado.id,
                    grupo_de_resolucion_id=grupo.id)
            empleados.remove(empleado)
        for x in clasificaciones[grupo.nombre]:
            clasificacion = ClasificacionBD(nombre=x,
                    grupo_id=grupo.id,
                    descripcion='Completar estos campos como se debe',
                    historial_de_clasificacion=None)
    # Comenzamos con los estados del ticket:
    # Falta poner la descripcion (...)
    estados = ['Abierto en Mesa de Ayuda', 'Abierto derivado',
            'Solucionado a la espera OK', 'Cerrado']
    for x,estado in enumerate(estados):
        EstadoBD(descripcion='',
                nombre=estados[x],
                historial_de_estado=None)
"""
Crear la base de datos:
nercof@debian:~/Proyectos/ghhp$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 189
Server version: 5.0.32-Debian_7etch3-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> drop database ghhp;
Query OK, 11 rows affected (0.25 sec)

mysql> create database ghhp;

"""
"""
usuario_1 = UsuarioBD(u_legajo = 'u11211', password = 'usuario_1', empleado_id = empleado_1.id, grupo_de_resolucion_id=grupo.id)
grupo_1 = GrupoDeResolucionBD(fecha_creacion=fecha, descripcion="Solucionan problemas de isntalacion", nombre="Unidades de Soporte")
usuario_2 = UsuarioBD(u_legajo = 'u22111', password = 'usuario_2', empleado_id = empleado_2.id, grupo_de_resolucion_id=grupo_1.id)
clasificacion_1 = ClasificacionBD(nombre = "Problemas de SO", grupo_id = grupo_1.id, historial_de_clasificacion = None)
clasificacion_2 = ClasificacionBD(nombre = "Configuracion de clientes de red", grupo_id = grupo_1.id, historial_de_clasificacion = None)
usuario_3 = UsuarioBD(u_legajo = 'u23235', password = 'usuario_3', empleado_id = empleado_3.id, grupo_de_resolucion_id=grupo_1.id)
grupo_2 = GrupoDeResolucionBD(fecha_creacion=fecha, descripcion="Resuelven problemas de hardware", nombre="Servicio Tecnico")
clasificacion_3 = ClasificacionBD(nombre = "Problemas de Hardware", grupo_id = grupo_2.id, historial_de_clasificacion = None)
clasificacion_4 = ClasificacionBD(nombre = "Instalar nuevos componentes", grupo_id = grupo_2.id, historial_de_clasificacion = None)
usuario_4 = UsuarioBD(u_legajo = 'u55236', password = 'usuario_4', empleado_id = empleado_4.id, grupo_de_resolucion_id=grupo_2.id)
usuario_5 = UsuarioBD(u_legajo = 'u11236', password = 'usuario_5', empleado_id = empleado_5.id, grupo_de_resolucion_id=grupo_2.id)
grupo_3 = GrupoDeResolucionBD(fecha_creacion=fecha, descripcion="Tareas sobre el motor de la BD", nombre ="Administrador de Base de Datos")
clasificacion_5 = ClasificacionBD(nombre = "Registro de reclamo", grupo_id = grupo_3.id, historial_de_clasificacion = None)
clasificacion_6 = ClasificacionBD(nombre = "Sistema comercial", grupo_id = grupo_3.id, historial_de_clasificacion = None)
usuario_6 = UsuarioBD(u_legajo = 'u11226', password = 'usuario_6', empleado_id = empleado_6.id, grupo_de_resolucion_id=grupo_3.id)
usuario_7 = UsuarioBD(u_legajo = 'u11222', password = 'usuario_7', empleado_id = empleado_7.id, grupo_de_resolucion_id=grupo_3.id)
usuario_8 = UsuarioBD(u_legajo = 'u12222', password = 'usuario_8', empleado_id = empleado_8.id, grupo_de_resolucion_id=grupo_3.id)
"""
